perm filename MSIN.OLD[NEW,LCS] blob
sn#592309 filedate 1981-06-04 generic text, type T, neo UTF8
C ********** DISPLAYS MUSIC AND DRAWS IT ON THE PLOTTER **********
C *** READS DATA FROM CLEFA-B-C-ETC., BDR40,BDI40, ETC.
IMPLICIT INTEGER(A-Q,S-Z)
REAL DIS,DISX,A,B,STFF,CENTR,POS ,UD,XDIS
COMMON /DL/X22,SAVER,NAME,EXT,IOLD /RRJJ/RJJ2,RJJ(20),JJA
1 /RINP/R(10,80),RPOS(2,50),RI(200)
2 /RMOD/RMODE2,RSET4,IBEAM,
3 NOSET,STEM,STUP,NTC,ENDP,RAD,RDD,ITB,POSB
C ORDER OF COMMON MUST! REMAIN AS IS (FOR DMP MODE READ)
COMMON /LIMIT/LIMIT,ITEM,L,I,IX,ITEMX,ILIM
1 /STF/RSTFAC(0/7),RSTJ2
2 /POSI/STFF(0/7),JJ2,POS /ALF/INP(72),ML
3 /SCM/V(78),ISCR,LCNT,RSTF,LIST(200),REND
4 /IDEV/IDEV,CHNG
5 /PLTR/PLT,RHT,DIS,XDIS /PTR/PWDS(350)
2 /JCHAR/IXX,ISEMI,IBLA,IG,JED,KED,REDIT,RITEM
COMMON R2,JA,CENTR,J2,RJQ(20),JQ(20) /RNW/RNW
1 /XRN/RN(3000) /DPY/ST(4000),MEDIT,IGO
2 /MKX/MKX(11) /SC/SSC(72)
EQUIVALENCE (J3,JQ(1)),(J4,JQ(2)),(J5,JQ(3)),(R5,RJQ(3)),(I4,
1 INP(4)),(R6,RJQ(4)),(J10,JQ(8)),(J6,JQ(4)),(R4,RJQ(2)),(R7,
2 RJQ(5)),(R3,RJQ(1)),(I2,INP(2)),(I1,INP(1)),(I3,INP(3)),
4 (R11,RJQ(9)),(R10,RJQ(8)),(R8,RJQ(6)),(RJ3,RJJ(1)),(R9,
5 RJQ(7)),(RX3,RJQ(20)),(ST2,ST(2)),(R13,RJQ(11)),(J8,JQ(6))
6 ,(J13,JQ(11)),(IPOS,POS),(I7,INP(7)) ,(ISTAR,MKX(11))
1 ,(MINUS,MKX(10)),(LESS,MKX(3)),(IGT,MKX(4)),(RJ7,RJJ(5))
DATA RNW/2.44/,LCNT/1/,LIMIT/3000/,DIS/1.0/, RHT/1.0/
5 ,PLUS/'+'/,EXT/'MS '/,COMMA/','/,ISEMI/';'/
C THE GIANT NUMBERS ARE FOR [ AND ]
DATA MKX/'/',';','<','>',-19728949184,-18655207360,'(',')','.'
1,'-','*'/,SSC(14)/'X'/,SSC(15)/';'/,SSC(72)/' '/
C LIMIT IS MAIN ARRAY LENGTH (3000) /SC/SSC ARRAY USED IN MARKS,BEAMS,SLURS
C 350 LIM. ON ITEMS PWDS, WDS (SEE ALSO 571 TO 170)
IDEV=1
I1=0
IX=0
RSET4=999
RPOS(1,1)=0
PWDS(1)=1
RN(2)=0
C FOR RESTART. AVOIDS STAFF CODE NUM.
DO 30 K=0,7
30 RSTFAC(K)=1.
M=1
ITEM=0
I=1
40 SCORE=-1
C CATCHES TYPO WITH 'C'
130 K=ITEM+1
TYPE 100
100 FORMAT(' TYPE FILE NAME '$)
101 FORMAT(2A5)
ACCEPT 101,NAME
IF(NAME.EQ.' ')NAME='INPUT'
CALL IFILE(1,NAME)
READ(IDEV,700,END=40)INP
IF(I7.NE.LT)GO TO 320
IF(I1.NE.LC)GO TO 320
C 'ET' DIRECTORY? UGH!!!
310 READ(IDEV,700)INP
IF(I3.NE.ISEMI)GO TO 310
READ(IDEV,700)INP
C READ AGAIN TO GET PAGE MARK - OR SOMETHING???
320 CALL READX
JA=55
700 FORMAT(72A1)
950 JA=140
RMODE2=R3
C ????? CHECK THIS TYPE 'IN STF# MODE' ETC. -- SAME AS 140 STF#.
960 SCORE=0
IF(JA.NE.140)GO TO 990
C NEXT PUTS UP STAFF IF IT WASN'T THERE ALREADY
RSTF=R2
C DO I NEED THE NEXT???
ITEM=1
RN(1)=6
RN(2)=8.
RN(3)=R2
IF(R3.LT.0)R3=0
RN(4)=R3
RN(5)=R4
RN(6)=R5
RN(7)=R6
RN(8)=R7
RN(9)=R8
IF(R5.EQ.0)R5=1.
RSTFAC(IFIX(R2))=R5
C P4 ???
I=10
980 JA=140
C ITCHK=ITEM
ICHK=I
C JIT=ITEM
990 ISC=I
REND=0
C RETAINS ORIGINS OF SCORE SQUENCE
1000 IF(REND.EQ.2)GO TO 990
C FOR READIN CONTINUATION.
M=ISC
1010 IF(JA.EQ.8)GO TO 980
IF(REND)GO TO 1050
C REND=0 GO, -1=NORMAL END, 1=ABORTED.
CALL SCMSS
IOLD=0
IF(REND.EQ.1)GO TO 1050
IF(REND.NE.99)GO TO 1020
I=ICHK
C ITEM=ITCHK
GO TO 1050
1050 GO TO 130
CC1020 ITEM=JIT
1020 J=M
1030 ITEM=ITEM+1
PWDS(ITEM)=J
J=J+RN(J)+3
IF(J.LT.I)GO TO 1030
IF(IBEAM)GO TO 1040
R2=RSTF
JA=-1
CALL HOMX
C GO ADJUST STEM LENGTHS
CC1040 ITEM=JIT
1040 CALL TYPSTR('NAME.EXT? ')
ACCEPT 700,INP
CALL NAMEXT(INP,NAME,EXT)
IF(NAME.EQ.' ')NAME='TMP'
IF(EXT.EQ.' ')EXT='MS'
41 CALL PUTEXT(NAME,EXT)
JJ2=ITEM+1
IPOS=I
CALL EXTOUT(RSTFAC,128)
CALL EXTOUT(RN,I)
CALL FINEXT
END
SUBROUTINE DDCLR
END
SUBROUTINE RDCUR
END
SUBROUTINE PNUM
END
SUBROUTINE PRESCN
END
C SUBROUTINE JUSTXT
C END
SUBROUTINE JUSTFY
END
C SUBROUTINE LPEN
C END
SUBROUTINE CLRCUR
END
SUBROUTINE FILLMS
END
SUBROUTINE MAKNUM
END
SUBROUTINE SETCUR
END
SUBROUTINE LINES(A,B,C)
END
SUBROUTINE LO2UP
END
SUBROUTINE NAMEXT(I,NAME,IEXT)
C FINDS NAME.EXT IN A1 STRING
DIMENSION I(1)
IF(I(1).NE.-1)GO TO 9
C FIRST PASS UP 'G', 'GM', 'RS', ETC. (=-1)
DO 1 K=1,72
1 IF(I(K).EQ.' ')GO TO 2
C NOW PASS BLANKS
2 J=72
DO 3 J=K+1,72
3 IF(I(J).NE.' ')GO TO 4
C NOW FOUND START OF WORD (UNLESS ALL BLANKS)
4 IF(J.NE.72)GO TO 5
NAME=' '
RETURN
9 J=1
5 DO 6 K=J,72
IF(I(K).EQ.' ')GO TO 7
C JUMP IF NAME ONLY
6 IF(I(K).EQ.'.')GO TO 8
7 CALL PACKX(NAME,I(J))
RETURN
8 CALL RLOOP(I(61),I(J),K-J)
CALL PACKX(NAME,I(61))
CALL PACKX(IEXT,I(K+1))
END
SUBROUTINE PACKX(NAM,KNM)
DIMENSION KNM(5)
DATA KK/128/,LL/"377777777777/,JJ/"2000000000/
1 , MM/"774000000000/
NAM=0
DO 12 K=5,1,-1
NAM=NAM .OR. (KNM(K) .AND. MM)
IF (K.EQ.1)RETURN
17 IF (NAM.GE.0)GO TO 13
NAM = (( NAM .AND. LL)/KK) .OR. JJ
GO TO 12
13 NAM = NAM / KK
12 CONTINUE
RETURN
END
BLOCK DATA
C **** WHEN JALPHA IS EXTENDED FIX LOOP AT 365 AND SUBR. NEWR(IN LOOP)
C **** AND SUBR. SCMSS, NOTBMS, RHYTH AND BEAMS
COMMON/SCX/ICOM,MINUS,IDOT,IEQ,LPRN,IRPRN,IPLUS,ISTAR,ICOLON,
1 ISEMI,IDBQT,IBLA,IDOL,IPRCNT,IANPR,IAT,INUM,LESS,IGT,IAPOS,
1 IQUES,IEXCLA,LBRK,RBRK,UPAR,DNAR,DBLAR,SLA,XX,ZZ,
1 J4,L,Y,K,RX,RZ,RA,J5
COMMON/SCN/KEL,KR,KU,KD,KSLA,NONO(30) /NUM/NUM(10),JRD/MKS/MKS(14)
DIMENSION IAZ(26),JALPHA(30)
COMMON/A2Z/LA,LB,LC,LD,LE,LF,LG,LH,LI,LJ,LK,LEL,LM,
1 LN,LO,LP,LQ,LR,LS,LT,LU,LV,LW,LX,LY,LZ
2 /POSI/STFF(0/7),JJ2,POS /STF/RSTFAC(0/7),RSTJ2
EQUIVALENCE (ICOM,JALPHA),(IAZ,LA)
C EQUIVALENCE (ICOM,JALPHA),(INP2,INP(2)),(IAZ,LA),(LSQ,JALPHA(23))
COMMON/FRMT/F78F(1),FONE(1),FA5(1),ASK
DATA F78F/'(78F)'/,FONE/'(A1 )'/,FA5/'(A5 )'/
DATA LEL/'L'/,LR/'R'/,LU/'U'/,LD/'D'/,LE/'E'/,KSLA/'/'/
1,LC/'C'/,LS/'S'/,LF/'F'/,LA/'A'/,LI/'I'/,LW/'W'/,XFONT/50./
DATA IAZ/'A','B','C','D','E','F','G','H','I','J','K','L','M',
1 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z'/
C 1 ,IBKSL/"561004020100/
C IBKSL=\ BACKSLASH - NOT USED YET 5/80
DATA JALPHA/',','-','.','=','(',')','+','*',':',';'
1 ,'"',' ','$','%','&','@','#','<','>',1H','?','!'
1 ,"555004020100,"565004020100,"571004020100,"5004020100,
1 "135004020100,'/',"755004020100,"771004020100/
1 ,STFF/-469.,-346.,-223.,-100.,23.,146.,269.,392./,RSTFAC/8*1./
DATA MKS/'W','A','F','S','M','T','D','U','H','I','P','C','R','O'/
DATA NUM/'0','1','2','3','4','5','6','7','8','9'/,JRD/0/
END